package com.ruoyi.report_jl.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.report_tg.domain.bo.ExcelGeneralBo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 矿粉筛分试验检测记录（水洗法）业务对象 report_jl_kfsfsysxfjlb_bs_info
 *
 * @author tll
 * @date 2024-06-27
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ReportJlKfsfsysxfjlbBsInfoBo extends ExcelGeneralBo {

    /**
     * id
     */
    @NotNull(message = "id不能为空", groups = { EditGroup.class })
    private Long excelId;

    /**
     * 共几页
     */
    @NotNull(message = "共几页不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long totalPage;

    /**
     * 第几页
     */
    @NotNull(message = "第几页不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long page;

    /**
     * 记录编号
     */
    @NotBlank(message = "记录编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jilbh;

    /**
     * 检测单位名称
     */
    @NotBlank(message = "检测单位名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jiancdwmc;

    /**
     * 工程部位/用途
     */
    @NotBlank(message = "工程部位/用途不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gongcbwyt;

    /**
     * 样品名称
     */
    @NotBlank(message = "样品名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpmc;

    /**
     * 样品编号
     */
    @NotBlank(message = "样品编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpbh;

    /**
     * 样品数量
     */
    @NotBlank(message = "样品数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpsl;

    /**
     * 样品状态
     */
    @NotBlank(message = "样品状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpzt;

    /**
     * 样品时间
     */
    @NotNull(message = "样品时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpsj;

    /**
     * 试验检测日期
     */
    @NotBlank(message = "试验检测日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shiyjcrq;

    /**
     * 试验条件温度
     */
    @NotBlank(message = "试验条件温度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shiytjwd;

    /**
     * 试验条件湿度
     */
    @NotBlank(message = "试验条件湿度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shiytjsd;

    /**
     * 检测依据
     */
    @NotBlank(message = "检测依据不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jiancyj;

    /**
     * 判定依据
     */
    @NotBlank(message = "判定依据不能为空", groups = { AddGroup.class, EditGroup.class })
    private String pandyj;

    /**
     * 主要仪器设备名称及编号
     */
    @NotBlank(message = "主要仪器设备名称及编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String zhuyyqsbmcjbh;

    /**
     * 附加声明
     */
    @NotBlank(message = "附加声明不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fujsm;

    /**
     * 报表名称
     */
    @NotBlank(message = "报表名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String baobmc;

    /**
     * 报表编号
     */
    @NotBlank(message = "报表编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String baobbh;

    /**
     * 工程名称
     */
    @NotBlank(message = "工程名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gongcmc;

    /**
     * 检测人
     */
    @NotBlank(message = "检测人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jiancr;

    /**
     * 记录人
     */
    @NotBlank(message = "记录人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jilr;

    /**
     * 复核人
     */
    @NotBlank(message = "复核人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fuhr;

    /**
     * 日期
     */
    @NotNull(message = "日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date riq;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 设备id逗号分隔
     */
    @NotBlank(message = "设备id逗号分隔不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shebIds;

    /**
     * 检测依据ids
     */
    @NotBlank(message = "检测依据ids不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jiancyjIds;

    /**
     * 判定依据ids
     */
    @NotBlank(message = "判定依据ids不能为空", groups = { AddGroup.class, EditGroup.class })
    private String pandyjIds;

    /**
     * 称量次数1
     */
    @NotBlank(message = "称量次数1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String chenglcsItem1;

    /**
     * 称量次数1
     */
    @NotBlank(message = "称量次数1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String chenglcsItem2;

    /**
     * 称量次数1
     */
    @NotBlank(message = "称量次数1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String chenglcsItem3;

    /**
     * 试样准备质量1
     */
    @NotNull(message = "试样准备质量1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shiyzbzlItem1;

    /**
     * 试样准备质量2
     */
    @NotNull(message = "试样准备质量2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shiyzbzlItem2;

    /**
     * 试样准备质量3
     */
    @NotNull(message = "试样准备质量3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shiyzbzlItem3;

    /**
     * 试样质量组1
     */
    @NotBlank(message = "试样质量组1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shiyzlGroup1;

    /**
     * 试样质量组2
     */
    @NotBlank(message = "试样质量组2不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shiyzlGroup2;

    /**
     * 筛孔尺寸行1
     */
    @NotNull(message = "筛孔尺寸行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shaikccItem1;

    /**
     * 筛上重组1行1
     */
    @NotNull(message = "筛上重组1行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup1Item1;

    /**
     * 分计筛余组1行1
     */
    @NotNull(message = "分计筛余组1行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup1Item1;

    /**
     * 累计筛余组1行1
     */
    @NotNull(message = "累计筛余组1行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup1Item1;

    /**
     * 通过百分率组1行1
     */
    @NotNull(message = "通过百分率组1行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup1Item1;

    /**
     * 筛上重组2行1
     */
    @NotNull(message = "筛上重组2行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup2Item1;

    /**
     * 分计筛余组2行1
     */
    @NotNull(message = "分计筛余组2行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup2Item1;

    /**
     * 累计筛余组2行1
     */
    @NotNull(message = "累计筛余组2行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup2Item1;

    /**
     * 通过百分率组2行1
     */
    @NotNull(message = "通过百分率组2行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup2Item1;

    /**
     * 通过百分率平均值行1
     */
    @NotNull(message = "通过百分率平均值行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflPjzItem1;

    /**
     * 筛孔尺寸行2
     */
    @NotNull(message = "筛孔尺寸行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shaikccItem2;

    /**
     * 筛上重组1行2
     */
    @NotNull(message = "筛上重组1行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup1Item2;

    /**
     * 分计筛余组1行2
     */
    @NotNull(message = "分计筛余组1行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup1Item2;

    /**
     * 累计筛余组1行2
     */
    @NotNull(message = "累计筛余组1行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup1Item2;

    /**
     * 通过百分率组1行2
     */
    @NotNull(message = "通过百分率组1行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup1Item2;

    /**
     * 筛上重组2行2
     */
    @NotNull(message = "筛上重组2行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup2Item2;

    /**
     * 分计筛余组2行2
     */
    @NotNull(message = "分计筛余组2行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup2Item2;

    /**
     * 累计筛余组2行2
     */
    @NotNull(message = "累计筛余组2行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup2Item2;

    /**
     * 通过百分率组2行2
     */
    @NotNull(message = "通过百分率组2行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup2Item2;

    /**
     * 通过百分率平均值行2
     */
    @NotNull(message = "通过百分率平均值行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflPjzItem2;

    /**
     * 筛孔尺寸行3
     */
    @NotNull(message = "筛孔尺寸行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shaikccItem3;

    /**
     * 筛上重组1行3
     */
    @NotNull(message = "筛上重组1行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup1Item3;

    /**
     * 分计筛余组1行3
     */
    @NotNull(message = "分计筛余组1行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup1Item3;

    /**
     * 累计筛余组1行3
     */
    @NotNull(message = "累计筛余组1行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup1Item3;

    /**
     * 通过百分率组1行3
     */
    @NotNull(message = "通过百分率组1行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup1Item3;

    /**
     * 筛上重组2行3
     */
    @NotNull(message = "筛上重组2行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup2Item3;

    /**
     * 分计筛余组2行3
     */
    @NotNull(message = "分计筛余组2行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup2Item3;

    /**
     * 累计筛余组2行3
     */
    @NotNull(message = "累计筛余组2行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup2Item3;

    /**
     * 通过百分率组2行3
     */
    @NotNull(message = "通过百分率组2行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup2Item3;

    /**
     * 通过百分率平均值行3
     */
    @NotNull(message = "通过百分率平均值行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflPjzItem3;

    /**
     * 筛孔尺寸行4
     */
    @NotNull(message = "筛孔尺寸行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shaikccItem4;

    /**
     * 筛上重组1行4
     */
    @NotNull(message = "筛上重组1行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup1Item4;

    /**
     * 分计筛余组1行4
     */
    @NotNull(message = "分计筛余组1行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup1Item4;

    /**
     * 累计筛余组1行4
     */
    @NotNull(message = "累计筛余组1行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup1Item4;

    /**
     * 通过百分率组1行4
     */
    @NotNull(message = "通过百分率组1行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup1Item4;

    /**
     * 筛上重组2行4
     */
    @NotNull(message = "筛上重组2行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup2Item4;

    /**
     * 分计筛余组2行4
     */
    @NotNull(message = "分计筛余组2行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup2Item4;

    /**
     * 累计筛余组2行4
     */
    @NotNull(message = "累计筛余组2行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup2Item4;

    /**
     * 通过百分率组2行4
     */
    @NotNull(message = "通过百分率组2行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup2Item4;

    /**
     * 通过百分率平均值行4
     */
    @NotNull(message = "通过百分率平均值行4不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflPjzItem4;

    /**
     * 筛孔尺寸行5
     */
    @NotNull(message = "筛孔尺寸行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shaikccItem5;

    /**
     * 筛上重组1行5
     */
    @NotNull(message = "筛上重组1行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup1Item5;

    /**
     * 分计筛余组1行5
     */
    @NotNull(message = "分计筛余组1行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup1Item5;

    /**
     * 累计筛余组1行5
     */
    @NotNull(message = "累计筛余组1行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup1Item5;

    /**
     * 通过百分率组1行5
     */
    @NotNull(message = "通过百分率组1行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup1Item5;

    /**
     * 筛上重组2行5
     */
    @NotNull(message = "筛上重组2行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup2Item5;

    /**
     * 分计筛余组2行5
     */
    @NotNull(message = "分计筛余组2行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup2Item5;

    /**
     * 累计筛余组2行5
     */
    @NotNull(message = "累计筛余组2行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup2Item5;

    /**
     * 通过百分率组2行5
     */
    @NotNull(message = "通过百分率组2行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup2Item5;

    /**
     * 通过百分率平均值行5
     */
    @NotNull(message = "通过百分率平均值行5不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflPjzItem5;

    /**
     * 筛孔尺寸行6
     */
    @NotNull(message = "筛孔尺寸行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shaikccItem6;

    /**
     * 筛上重组1行6
     */
    @NotNull(message = "筛上重组1行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup1Item6;

    /**
     * 分计筛余组1行6
     */
    @NotNull(message = "分计筛余组1行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup1Item6;

    /**
     * 累计筛余组1行6
     */
    @NotNull(message = "累计筛余组1行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup1Item6;

    /**
     * 通过百分率组1行6
     */
    @NotNull(message = "通过百分率组1行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup1Item6;

    /**
     * 筛上重组2行6
     */
    @NotNull(message = "筛上重组2行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shaiszGroup2Item6;

    /**
     * 分计筛余组2行6
     */
    @NotNull(message = "分计筛余组2行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal fenjsyGroup2Item6;

    /**
     * 累计筛余组2行6
     */
    @NotNull(message = "累计筛余组2行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal leijsyGroup2Item6;

    /**
     * 通过百分率组2行6
     */
    @NotNull(message = "通过百分率组2行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflGroup2Item6;

    /**
     * 通过百分率平均值行6
     */
    @NotNull(message = "通过百分率平均值行6不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal tonggbflPjzItem6;


    @NotNull(message = "子表", groups = { AddGroup.class, EditGroup.class })
    private List<Object> detailList;

    @NotNull(message = "报表编号集", groups = { AddGroup.class, EditGroup.class })
    private List<String> baobbhList;

    /**
     * 样品缩分方法
     */
    private String yangpsfff;
    /**
     * 1组1次称重
     */
    private String chengz11;
    /**
     * 1组2次称重
     */
    private String chengz12;
    /**
     * 1组3次称重
     */
    private String chengz13;
    /**
     * 2组1次称重
     */
    private String chengz21;
    /**
     * 2组2次称重
     */
    private String chengz22;
    /**
     * 2组3次称重
     */
    private String chengz23;

    /**
     * 筛余率2
     */
    private String shaiyl2;
    /**
     * 筛余率3
     */
    private String shaiyl3;
    /**
     * 筛余率4
     */
    private String shaiyl4;
    /**
     * 筛余率1
     */
    private String shaiyl1;

}
